//
//  NSArray+JCSafetyGetter.h
//  JCPublicKit-Objc
//
//  Created by JasonLee on 2020/4/24.
//

#import <Foundation/Foundation.h>

@interface NSArray (JCSafetyGetter)
/**
获取索引值所在的对象，默认为nil
如果索引值没有越界
且value为NSObject
@param index 索引值
@return NSObject
@version 0.1.1
*/
- (NSObject * _Nullable)jc_objectAtIndex:(NSUInteger)index;
/**
获取索引值所在的字符串，默认为nil
如果索引值没有越界
且value为NSString
@param index 索引值
@return NSString
@version 0.1.1
*/
- (NSString * _Nullable)jc_stringAtIndex:(NSUInteger)index;
/**
获取索引值所在的整型数值，默认为0
如果索引值没有越界
且value为int
@param index 索引值
@return int
@version 0.1.1
*/
- (int)jc_intAtIndex:(NSUInteger)index;
/**
获取索引值所在的整型数值，默认为0
如果索引值没有越界
且value为NSInteger
@param index 索引值
@return NSInteger
@version 0.1.1
*/
- (NSInteger)jc_integerAtIndex:(NSUInteger)index;
/**
获取索引值所在的长整型数值，默认为0
如果索引值没有越界
且value为long long
@param index 索引值
@return long long
@version 0.1.1
*/
- (long long)jc_longLongAtIndex:(NSUInteger)index;
/**
获取索引值所在的双精度浮点型数值，默认为0
如果索引值没有越界
且value为double
@param index 索引值
@return double
@version 0.1.1
*/
- (double)jc_doubleAtIndex:(NSUInteger)index;
/**
获取索引值所在的字典，默认为nil
如果索引值没有越界
且value为NSDictionary
@param index 索引值
@return NSDictionary
@version 0.1.1
*/
- (NSDictionary * _Nullable)jc_dictionaryAtIndex:(NSUInteger)index;
/**
获取索引值所在的数组，默认为nil
如果索引值没有越界
且value为NSArray
@param index 索引值
@return NSArray
@version 0.1.1
*/
- (NSArray * _Nullable)jc_arrayAtIndex:(NSUInteger)index;
/**
判断索引值是否没有越界
@param index 索引值
@return BOOL
@version 0.1.1
*/
- (BOOL)jc_isIndexInBound:(NSInteger)index;
/**
判断索引值是否越界
@param index 索引值
@return BOOL
@version 0.1.1
*/
- (BOOL)jc_isIndexOutOfBound:(NSInteger)index;

@end
